Spring Cloud Config Server সেটআপ এবং কনফিগার করা

Spring Cloud Config Server - স্প্রিং ক্লাউড (Spring Cloud) - Java Technologies

261

Spring Cloud Config Server হল একটি সেন্ট্রাল কনফিগারেশন সার্ভিস, যা Spring Boot অ্যাপ্লিকেশনগুলির কনফিগারেশন স্টোর এবং ম্যানেজ করার জন্য ব্যবহৃত হয়। এটি মাইক্রোসার্ভিস আর্কিটেকচারে সমস্ত সার্ভিসের কনফিগারেশনকে একটি সেন্ট্রাল প্লেসে রাখার সুবিধা দেয় এবং আপনার অ্যাপ্লিকেশনকে কনফিগারেশন পরিবর্তনগুলি সহজে এক্সেস করার অনুমতি দেয়।

Spring Cloud Config Server সেটআপ এবং কনফিগারেশন প্রক্রিয়া:

ধাপ ১: প্রয়োজনীয় ডিপেনডেন্সি যোগ করুন

প্রথমে Spring Cloud Config Server এবং Spring Cloud Config Client এর জন্য প্রয়োজনীয় ডিপেনডেন্সি আপনার pom.xml ফাইলে যোগ করুন।

Config Server Dependency (pom.xml):

<dependencies>
    <!-- Spring Boot Starter Web for REST API -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- Spring Cloud Config Server -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>

    <!-- Spring Boot Starter Actuator (Optional for monitoring) -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
</dependencies>

Config Client Dependency (pom.xml):

<dependencies>
    <!-- Spring Boot Starter Web for REST API -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- Spring Cloud Config Client -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>
</dependencies>

ধাপ ২: Config Server কনফিগার করুন

2.1. Config Server অ্যাপ্লিকেশন তৈরি করুন:

Spring Cloud Config Server সঠিকভাবে কাজ করার জন্য আপনাকে @EnableConfigServer এনোটেশন ব্যবহার করে একটি অ্যাপ্লিকেশন তৈরি করতে হবে। এই অ্যাপ্লিকেশনটি আপনার সমস্ত মাইক্রোসার্ভিসের কনফিগারেশন পাঠাবে।

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;

@SpringBootApplication
@EnableConfigServer
public class ConfigServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConfigServerApplication.class, args);
    }
}

2.2. application.properties কনফিগারেশন:

application.properties বা application.yml ফাইল কনফিগার করে Config Server-কে বলুন কোন রিপোজিটরি থেকে কনফিগারেশন ফাইল পড়তে হবে।

# Config Server Configuration
server.port=8888
spring.cloud.config.server.git.uri=https://github.com/your-username/your-config-repository
spring.cloud.config.server.git.clone-on-start=true
spring.cloud.config.server.git.searchPaths=configs
spring.cloud.config.server.git.username=your-username
spring.cloud.config.server.git.password=your-password
  • spring.cloud.config.server.git.uri: এটি গিট রিপোজিটরি ইউআরএল যেখানে আপনার কনফিগারেশন ফাইল রয়েছে।
  • spring.cloud.config.server.git.searchPaths: কনফিগারেশন ফাইলের অবস্থান (যদি আপনি গিট রিপোজিটরিতে একাধিক ফোল্ডার ব্যবহার করেন)।
  • spring.cloud.config.server.git.usernamespring.cloud.config.server.git.password: যদি রিপোজিটরি প্রাইভেট হয়, তবে আপনার গিট রিপোজিটরি অ্যাক্সেসের জন্য ইউজারনেম এবং পাসওয়ার্ড ব্যবহার করতে হবে।

ধাপ ৩: Config Server এর জন্য Git Repository তৈরি করুন

Config Server গিট রিপোজিটরি থেকে কনফিগারেশন ফাইল পড়বে, তাই একটি গিট রিপোজিটরি তৈরি করুন (যদি আপনি আগে থেকেই না করে থাকেন)। আপনি এখানে কনফিগারেশন ফাইল যেমন application.properties বা application.yml রাখতে পারেন।

উদাহরণ:

# application.yml
server:
  port: 8081

spring:
  application:
    name: my-service

এই ফাইলটি গিট রিপোজিটরিতে যোগ করুন এবং Config Server-এ ব্যবহার করার জন্য সেট আপ করুন।

ধাপ ৪: Config Client কনফিগার করুন

Config Client সেট আপ করতে হলে, spring-cloud-starter-config ডিপেনডেন্সি এবং কনফিগারেশন প্রপার্টি যোগ করতে হবে।

4.1. Client অ্যাপ্লিকেশন তৈরি করুন:

Client অ্যাপ্লিকেশন আপনার Spring Boot অ্যাপ্লিকেশন হতে পারে, যা কনফিগারেশন সার্ভার থেকে কনফিগারেশন গ্রহণ করবে।

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
public class ConfigClientApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConfigClientApplication.class, args);
    }
}

4.2. Client কনফিগারেশন (application.properties):

Config Client-এর application.properties ফাইলে আপনি Config Server এর ইউআরএল এবং সার্ভিসের নাম উল্লেখ করবেন।

# Config Client Configuration
spring.application.name=my-service
spring.cloud.config.uri=http://localhost:8888

এখানে, spring.cloud.config.uri Config Server-এর URL যেখানে আপনার কনফিগারেশন ফাইল রাখা আছে।

4.3. Client কনফিগারেশন ব্যবহার:

@RefreshScope এনোটেশন ব্যবহার করে ডাইনামিক কনফিগারেশন রিফ্রেশ করার অনুমতি দেওয়া যায়।

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RefreshScope
public class ConfigClientController {

    @Value("${server.port}")
    private String serverPort;

    @GetMapping("/config")
    public String getConfig() {
        return "Config Server Port: " + serverPort;
    }
}

এখানে, @Value("${server.port}") কনফিগারেশন ফাইল থেকে server.port প্রপার্টি কে ইনজেক্ট করবে এবং /config এ এই কনফিগারেশন প্রদর্শন করবে।

ধাপ ৫: Config Server এবং Client চালু করুন

  1. প্রথমে Config Server অ্যাপ্লিকেশন চালু করুন।
  2. তারপর Config Client অ্যাপ্লিকেশন চালু করুন।
  3. ব্রাউজারে http://localhost:8081/config গিয়ে কনফিগারেশন তথ্য দেখুন।

ধাপ ৬: কনফিগারেশন রিফ্রেশ করুন (Optional)

যদি আপনি কনফিগারেশন পরিবর্তন করতে চান এবং সেটা Client অ্যাপ্লিকেশন-এ রিফ্রেশ করতে চান, তবে আপনি @RefreshScope ব্যবহার করতে পারেন এবং /actuator/refresh এ POST রিকোয়েস্ট পাঠাতে পারেন।

curl -X POST http://localhost:8081/actuator/refresh

এটি Config Server থেকে নতুন কনফিগারেশন লোড করবে এবং Client অ্যাপ্লিকেশন তা রিফ্রেশ করবে।


সংক্ষেপে:

  • Config Server একটি সেন্ট্রাল কনফিগারেশন ম্যানেজমেন্ট সিস্টেম তৈরি করে যা মাইক্রোসার্ভিস অ্যাপ্লিকেশনগুলির কনফিগারেশন সেন্ট্রালাইজ করে রাখে।
  • Config Server থেকে গিট রিপোজিটরি অথবা ফাইল সিস্টেমের মাধ্যমে কনফিগারেশন লোড করা যায়।
  • Config Client অ্যাপ্লিকেশন কনফিগারেশন গ্রহণ করে এবং @RefreshScope ব্যবহার করে কনফিগারেশন রিফ্রেশ করতে সক্ষম হয়।

Spring Cloud Config ব্যবহারের মাধ্যমে আপনি কনফিগারেশন ম্যানেজমেন্ট প্রক্রিয়া সহজ ও সেন্ট্রালাইজড করতে পারেন, যা মাইক্রোসার্ভিস আর্কিটেকচারের জন্য অত্যন্ত কার্যকর।

Content added By
Promotion

Are you sure to start over?

Loading...